home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / clang / zcpp_jae.zip / README.OLD < prev    next >
Text File  |  1990-07-06  |  5KB  |  113 lines

  1.  
  2. Decus cpp is a public-domain implementation of the C preprocessor.
  3. It runs on VMS native (Vax C), VMS compatibilty mode (Decus C),
  4. RSX-11M, RSTS/E, P/OS, and RT11, as well as on several varieties
  5. of Unix, including Ultrix.  Decus cpp attempts to implement features
  6. in the Draft ANSI Standard for the C language.  It should be noted,
  7. however, that this standard is under active development:  the current
  8. draft of the standard explicitly states that "readers are requested
  9. not to specify or claim conformance to this draft."  Thus readers
  10. and users of Decus cpp should not assume that it conforms to the
  11. draft standard, or that it will conform to the actual C language
  12. standard.
  13.  
  14. These notes describe how to extract the cpp source files, configure it
  15. for your needs, and mention a few design decisions that may be of interest
  16. to maintainers.
  17.  
  18.             Installation
  19.  
  20. Because the primary development of cpp was not on Unix, it
  21. is distributed using the Decus C archive program (quite similar
  22. to the archiver published in Kernighan and Plauger's Software
  23. Tools).  To extract the files from the net.sources distribution,
  24. save this message as cpp1.arc and the other two distribution
  25. files as cpp2.arc and cpp3.arc.  Then, using your favorite editor,
  26. locate the archx.c program, just following the line beginning with
  27. "-h- archx.c" -- the format of the distribution is just:
  28.  
  29.     -h- readme.txt
  30.       ... this file
  31.     -h- cpp.mem
  32.       ... description of cpp
  33.     -h- archx.c
  34.       ... archx.c program -- extracts archives
  35.     -h- archc.c
  36.       ... archc.c program -- creates archives
  37.  
  38. Compile archx.c -- it shouldn't require any special editing.
  39. Then run it as follows:
  40.  
  41.     archx *.arc
  42.  
  43. You do not need to remove mail headers from the saved messages.
  44.  
  45. You should then read through cppdef.h to make sure the HOST and
  46. TARGET (and other implementation-specific) definitions are set
  47. correctly for your machine, editing them as needed.
  48.  
  49. You may then copy makefile.txt to Makefile, editing it as needed
  50. for your particular system.  On Unix, cpp should be compiled
  51. by make without further difficulty.  On other operating systems,
  52. you should compile the six source modules, linking them together.
  53. Note that, on Decus C based systems, you must extend the default
  54. stack allocation.  The Decus C build utility will create the
  55. appropriate command file.
  56.  
  57.             Support Notes
  58.  
  59. The USENET distribution kit was designed to keep all submissions around
  60. 50,000 bytes:
  61.  
  62. cpp1.arc:
  63.     readme.txt    This file
  64.     cpp.mem        Documentation page (see below)
  65.     archx.c        Archive extraction program
  66.     archc.c        Archive construction program
  67.     cpp.rno        Source for cpp.mem (see below)
  68.     makefile.txt    Unix makefile -- copy to Makefile
  69.     cpp.h        Main header file (structure def's and globals)
  70.     cppdef.h    Configuration file (host and target definitions)
  71.  
  72. cpp2.arc:
  73.     cpp1.c        Mainline code, documentation master sources
  74.     cpp2.c        most #control processing
  75.     cpp3.c        filename stuff and command line parsing
  76. cpp3.arc:
  77.     cpp4.c        #define processor
  78.     cpp5.c        #if <expr> processor
  79.     cpp6.c        Support code (symbol table and I/O routines)
  80.     
  81. Cpp intentionally does not rely on the presence of a full-scale
  82. macro preprocessor, it does require the simple parameter substitution
  83. preprocessor capabilities of Unix V6 and Decus C.  If your C
  84. language lacks full preprocessing, you should make sure "nomacargs"
  85. is #define'd in cpp.h.  (This is done automatically by the Decus C
  86. compiler.)
  87.  
  88. The documentation (manual page) for cpp is included as cpp.mem
  89. and cpp.rno.  Cpp.rno is in Dec Runoff format, built by a Decus C
  90. utility (getrno) from original source which is embedded in cpp1.c.
  91. To my knowledge, there is no equivalent program that creates
  92. the nroff source appropriate for Unix.
  93.  
  94. I would be happy to receive fixes to any problems you encounter.
  95. As I do not maintain distribution kit base-levels, bare-bones
  96. diff listings without sufficient context are not very useful.
  97. It is unlikely that I can find time to help you with other
  98. difficulties.
  99.  
  100.             Acknowledgements
  101.  
  102. I received a great deal of help from many people in debugging cpp.
  103. Alan Feuer and Sam Kendall used "state of the art" run-time code
  104. checkers to locate several errors.  Ed Keiser found problems when
  105. cpp was used on machines with different int and pointer sizes.
  106. Dave Conroy helped with the initial debugging, while Arthur Olsen
  107. and George Rosenberg found (and solved) several problems in the
  108. first USENET release.
  109.  
  110. Martin Minow
  111. decvax!minow
  112.  
  113.